AWS Developer Live Showで「アジャイルよもやま話 ~ リモートでもアジャイル開発 (オフショアでやってみた)」という話をしてきた
はじめに
こんにちは、モダンオフショア事業推進担当兼Classmethod Vietnamの藤村です。
2023年8月29日に開催されたAWS Developer Live Show で、アジャイルよもやま話 ~ リモートでもアジャイル開発 (オフショアでやってみた)という話をしてきました。
経緯
以前からアジャイルコミュニティでも大変お世話になっているAWSJの福井様、伊藤様から、「ベトナムの方とのアジャイルの取り組みについてお話ししませんか?」とお声がけを頂いたことがきっかけで、今回お話しさせて頂くことになりました。
事前に予告動画も作って頂きました。本格的!
【明日火曜 17時から】AWS公式 YouTube ライブ配信:アジャイルよもやま話 ▶ https://t.co/8Uthv0LmFr
明日の #AWSDevLiveShow では、リモート開発の現場でアジャイルの原則を取り入れたモダンオフショアを実践することで得た学びや経験をゲストに伺います。 pic.twitter.com/SQFbBcJq80
— AWS公式☁️アマゾン ウェブ サービス ジャパン/クラウドサービス (@awscloud_jp) August 28, 2023
当日の動画
当日の動画はこちらです。
ダイジェスト
オフショアアジャイル導入のきっかけは?
今から10年前の2013年、私が在籍していた会社がベトナムのハノイにラボセンターを設立しました。当時私は、日本のチームでアジャイル開発の導入、推進、実践を行っており、ベトナムの開発チームにもアジャイル開発を導入してみないかと声がかかり、現地に行ってアジャイル研修を行ったり、試行錯誤しながらオフショアに特化した開発モデルを考えてみたりしたのが最初のきっかけです。
その後の2016年、当時在籍していた開発ベンダーの開発拠点がベトナムのダナンにあり、急速に需要が増していたアジャイル開発について現地で推進してもらえないかということで、アジャイルコーチとしてベトナムに渡り、約半年間ダナンに住みながらアジャイル開発の導入、推進、実践に取り組みました。
そして現職のクラスメソッドでも、今までの経験を活かして、アジャイルなオフショア開発に取り組んでいる、というのが導入の経緯となります。
リモートでアジャイル開発を始めるために大切なことは?
大切なことはたくさんありますが、特に以下の7つが重要だと考えてます。
相互利益
書籍、『エクストリームプログラミング』からの引用ですが、開発費が安いからという日本側の利益だけではなかなかうまくいかず、お互い儲けようの精神が重要です。
信頼
物理的に離れていることで普段の仕事内容が見えなかったり、国籍、言語、文化が異なることで不安になってマイクロマネージメントしがちですが、主にベトナム側の開発チーム側でカンバンなどを使った見える化を行ない、進捗も◯%のような共有ではなく、実際に動くソフトウェアを見せることで信頼関係を築いていきました。
リスペクト
人と人とが関わり合いながら開発を進めるということで、お互いのリスペクトももちろん重要です。当日は触れられなかったのですが、ベトナムメンバーと一緒に開発する際に、まずはメンバー全員の名前を覚えるところから始めるということをいつも心がけています。
チームビルディングでどのようなことをしましたか?
ベトナムでは、「チームビルディング」≒飲み会という認識が定着しているので、PJ毎に飲み会を開いたり、職能チーム毎に休みの日に集まってご飯を食べたり、社員旅行のアクティビティで一緒に踊ったりするなどでチームの一体感を高めていました。
言語の問題、コミュニケーションはどうやって取っていますか?
チームビルディングや飲みの場、ランチなどでは、お互い頑張って英語でコミュニケーションを取っています。開発を進める上では、2階層のスクラムチームを組み、スプリントプランニングとレトロスペクティブをあえて2部制にして、それぞれ参加者、使用言語(ベトナム語、日本語)を切り替えることで円滑なコミュニケーションを目指しています。
どれぐらいの頻度と期間でベトナムへ出張されましたか?
これはPJ毎に異なります。出張の価値を理解して頂けるお客さんとのPJでは、出張費込みでお見積りさせて頂き、2ヶ月に1回、1〜2週間程度ベトナム出張していました。そうではない場合は、PJの利益率を見ながら、必要に応じて出張を計画しています。また私含めてベトナムが大好きなメンバーが多いので、ワーケーションの一環として自腹でベトナムに行って、ベトナムメンバーと一緒に働いていたりもします。
オフショア開発だと、どうしても契約上の発注⇔受託の関係が体制にも反映されてしまって、自分ごととして動いてもらうために、どのように意識づけしたのか、が知りたい
可能であればキックオフ時にお客さんとともにベトナムへ行き、お客さん自身が自分の言葉でなぜこの機能が必要なのかを話してもらったり、一緒に食事をすることで、単なる受発注の関係ではなく人と人との関係を構築することを意識しています。一度そういった関係が構築できると、帰国後に離れて開発を行うことになっても、円滑にPJを進められると考えています。
XPのプラクティスでできてること、できてないことは?
ペアプロはなかなかできていないのですが、開発者とQCメンバーがペアワークするのは当たり前に行われてます。CI/CDやコードの共同所有は当たり前にできていますが、TDDや自動テストはまだ十分にできているとは言えず、QCメンバーが人力でE2Eテストを実施したりしています。全体のリードタイムで考えると、モブプロやペアプロで行ったほうが早くなるのではという仮説はあるのですが、まだ実際のプロジェクトで試すことができていない状況です。
「アジャイル」というものの理解度、日本とベトナムで差があったりはしないのか?
特に理解度という点ではそれほど変わらないと考えています。少し話は変わりますが、ベトナムでアジャイルを導入する際、日本側で設計した通りに実装するのではなく、ベトナム側で自ら設計しても良いんだよということを良い意味で伝えたのですが、そこまでベトナム側に期待するならもっと単価を上げてください!という事を言われたことがとても印象に残っています。
PO、スクラムマスターは日本?ベトナム?
上述した通り、2階層のスクラムチームを組んでおり、αチームのPO(代理PO)とSMはベトナム人、βチームのPOはお客様、SMとTL(テックリード)はクラスメソッドの日本人が担うことが多いです。
今後改善したいことは?
慢性的な課題として、クラスメソッドのアーキテクトに負荷が集中してしまい、ボトルネックになってしまうという課題があります。
以下のスライドを見てもらうと分かるとおり、アーキテクトは次のスプリントで実装する見込みのPBIの詳細、実装イメージ、受け入れ条件などをWikiに記載しつつ、現在のスプリントのスコープであるPBIの受け入れ確認、フィードバックも同時に行っています。
せっかくベトナム側で優秀なメンバーを多数揃えることができたとしても、アーキテクトがボトルネックで拡大できないという課題があるため、今後はベトナム側で可能な限り自走できるチームを組み、アーキテクトの役割を少しずつベトナム側に寄せていくことで改善していきたいと考えています。
オフショアアジャイルで楽しかった点は?
去年、今年と、ベトナムのアジャイルコミュニティが主催するAgile Vietnam Conference で登壇してきているのですが、現地ではベトナムだけでなく東南アジアで活躍しているアジャイルコーチの方々と交流することができ、それがとても楽しいです。ベトナムではフィンテックなども盛り上がっており、銀行でのアジャイル開発事例なども活発に話されていて、その分野では日本よりも進んでいるかもしれません。カンファレンスでは日本のオフショア開発に対する興味は正直とても低く、ベトナム国内のフィンテックやエンタープライズアジャイルへの興味の高さを目の当たりにして、危機感も感じています。
さいごに
AWSJの福井様、松本様が色々質問してくれたおかげで、アジャイルなオフショア開発を始めた経緯から現在の取り組み、現状直面している課題や今後のチャレンジまで、存分にお話することができました。この内容を聞いてくれた方が少しでもベトナムや東南アジアのメンバーとのアジャイル開発に興味を持ち、チャレンジしたいと思ってもらえたら大変嬉しく思います。